home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / game / role / GraalHerald1.lha / GraalHerald1 / 7.room < prev    next >
Text File  |  1996-11-27  |  6KB  |  179 lines

  1. /* save and load room                                                      */
  2. /*                                                                         */
  3. /* This room shows how to make your own "save and load" room using the new */
  4. /* conditions and commands SAVE, LOAD, IFEXISTS, IFNOTSAVEDISK. You should */
  5. /* also provide a direct save/load verb and disable the normal save/load   */
  6. /* keyboard keys in the graal.main file - have a look and see how I've     */
  7. /* done.                                                                   */
  8. /*                                                                         */
  9. /* ======================================================================= */
  10.  
  11.  
  12. UPDATE: 6;1
  13.  
  14.  
  15. /*
  16. /* This new form of SECTION: statement prevents the section data from being
  17. /* messed up when you use a "subroutine" room like this - that is, a room
  18. /* that can be visited from anywhere within the game.
  19. /*
  20. SECTION: SAME
  21.  
  22.  
  23. BG_IFF: saveex_bg.iff
  24.  
  25.  
  26. /*
  27. /* "Dummy" startpos and floor statements - since the main character is not
  28. /* present, the values are not important as long as they are valid in
  29. /* GRAAL_2!
  30. /*
  31. START_POS: 1;11;0;0;L;1
  32. FLOOR: 1;500;500;501;501;1-1
  33.  
  34.  
  35. /* Covering graphics with an invisible exit is a quick way to make a button...
  36. /*
  37. /* 1-6 are the save positions... you may have as many or few as you like...
  38. /*
  39. EXIT: 1;36;40;57;56;0;0; 
  40. EXIT: 2;71;110;92;126;0;0; 
  41. EXIT: 3;146;21;167;37;0;0; 
  42. EXIT: 4;148;72;169;88;0;0; 
  43. EXIT: 5;210;21;231;37;0;0; 
  44. EXIT: 6;213;82;234;98;0;0; 
  45. /*
  46. /* Back, Load, and Save "buttons"
  47. /*
  48. EXIT: 7;1;147;62;163;0;0; 
  49. EXIT: 8;115;150;176;166;0;0; 
  50. EXIT: 9;180;150;241;166;0;0; 
  51.  
  52.  
  53. CLPART: saveex_clpart.iff
  54. /*
  55. /* "Lighted" save/load indicators
  56. /*
  57. ROOMBOBS: 6;1;7;5;22;18;21;0
  58. /*
  59. /* Flashing arrow indicating selected number
  60. /*
  61. ROOMBOBS: 2;7;12;27;15;14;16;0
  62. /*
  63. /* Background plate for explanatory text
  64. /*
  65. ROOMBOBS: 1;9;15;56;276;66;0;150
  66.  
  67.  
  68. /*
  69. /* I want an animated arrow, so I'll make it a room object...
  70. /*
  71. ROOMOBJ: 1; ;7;NVIS;50;A 0,(RBOB7,25)(RBOB8,25);0;0;0;0;11; ;NPICK;14;0; ;LOW; ; ; ; 
  72. /*
  73. /* You don't need to define objects for the buttons - you can set the
  74. /* button states and other graphics using PBOB and/or BOBON commands.
  75. /*
  76.  
  77.  
  78. /*
  79. /* Now for some DACT:s...
  80. /*
  81. /* First, if the player doesn't provide the save disk, go back from
  82. /* whence we came and forget about the whole thing!
  83. /*
  84. DACT: IFNOTSAVEDISK;RESUME
  85. /*
  86. /* We have obviously ensured ourselves of a valid "saved games" disk.
  87. /*
  88. /* Hide the command area using a "dummy" cutscene containing nothing.
  89. /* Just remember to make it visible before leaving again!!!
  90. /*
  91. DACT: CUTSCENE BLANK,NF
  92. /*
  93. /* Reset the "number clicked" flag.
  94. /*
  95. DACT: SETRF 1=0
  96. /*
  97. /* Light the buttons for which saved games exist already.
  98. /*
  99. DACT: IFEXISTS 1;PBOB 36,40,RBOB1
  100. DACT: IFEXISTS 2;PBOB 71,110,RBOB2
  101. DACT: IFEXISTS 3;PBOB 145,21,RBOB3
  102. DACT: IFEXISTS 4;PBOB 148,72,RBOB4
  103. DACT: IFEXISTS 5;PBOB 210,21,RBOB5
  104. DACT: IFEXISTS 6;PBOB 213,82,RBOB6
  105. /*
  106. DACT: CHAR OFF;LIGHTS ON
  107. /*
  108. /* If first visit, explain. (Room flag 2 is set in graal.main, because the
  109. /* only way to leave this room is via RESUME or LOAD, which resets
  110. /* all flags to the MARKed position - thus, it is useless to alter ANY
  111. /* flags or other values permanently here! Vital to remember that!
  112. /*
  113. DACT: IFRF 2=1;CUTSCENE 7,NF
  114. DACT: EXIT
  115.  
  116.  
  117. /* ====================================================================== */
  118. /*                                                                        */
  119. /* Because we've hidden the command area, and exits are the only things   */
  120. /* that exist in this scene, we only have to check for ACTION: 0;...      */
  121. /*                                                                        */
  122. /* ====================================================================== */
  123.  
  124. /*
  125. /* Did player click a saved game slot?
  126. /*
  127. /* Set room flag 1 to tell us which number was last clicked...
  128. /* Place the flashing arrow next to the clicked button.
  129. /*
  130. ACTION: 0;IFOBJ 1;SETRF 1=1;SHOW ROBJ1,27,55,DEF;EXIT
  131. ACTION: 0;IFOBJ 2;SETRF 1=2;SHOW ROBJ1,63,125,DEF;EXIT
  132. ACTION: 0;IFOBJ 3;SETRF 1=3;SHOW ROBJ1,138,36,DEF;EXIT
  133. ACTION: 0;IFOBJ 4;SETRF 1=4;SHOW ROBJ1,139,87,DEF;EXIT
  134. ACTION: 0;IFOBJ 5;SETRF 1=5;SHOW ROBJ1,201,36,DEF;EXIT
  135. ACTION: 0;IFOBJ 6;SETRF 1=6;SHOW ROBJ1,205,97,DEF;EXIT
  136.  
  137. /*
  138. /* "Back" is clicked, return to whence we came...
  139. /* ...but restore the command area with another "dummy" cutscene command first!
  140. /*
  141. ACTION: 0;IFOBJ 7;CUTSCENE BLANK,N;RESUME
  142.  
  143. /*
  144. /* "Load" is clicked, better check to see if a valid save file exists
  145. /* before attempting to load it...
  146. /*
  147. ACTION: 0;IFOBJ 8;IFRF 1=1;IFEXISTS 1;CUTSCENE BLANK,N;LOAD 1;EXIT
  148. ACTION: 0;IFOBJ 8;IFRF 1=2;IFEXISTS 2;CUTSCENE BLANK,N;LOAD 2;EXIT
  149. ACTION: 0;IFOBJ 8;IFRF 1=3;IFEXISTS 3;CUTSCENE BLANK,N;LOAD 3;EXIT
  150. ACTION: 0;IFOBJ 8;IFRF 1=4;IFEXISTS 4;CUTSCENE BLANK,N;LOAD 4;EXIT
  151. ACTION: 0;IFOBJ 8;IFRF 1=5;IFEXISTS 5;CUTSCENE BLANK,N;LOAD 5;EXIT
  152. ACTION: 0;IFOBJ 8;IFRF 1=6;IFEXISTS 6;CUTSCENE BLANK,N;LOAD 6;EXIT
  153. /*
  154. /* A number must be clicked before trying to load.
  155. /*
  156. ACTION: 0;IFOBJ 8;IFRF 1=0;TEXT -1,0,1,You must click a number first!;EXIT
  157. /*
  158. /* The load/exit above failed, so...
  159. /*
  160. ACTION: 0;IFOBJ 8;TEXT -1,0,1,Sorry - no saved game available for the number you clicked! ;EXIT
  161.  
  162. /*
  163. /* If "Save" is clicked, save the game... and light the slout number if the
  164. /* save was successful. (Note: The SAVE command saves the last MARKed
  165. /* position, and MARK was the last thing we did before jumping to this
  166. /* room.)
  167. /*
  168. ACTION: 0;IFOBJ 9;IFRF 1=1;SAVE 1;IFEXISTS 1;PBOB 36,40,RBOB1;EXIT
  169. ACTION: 0;IFOBJ 9;IFRF 1=2;SAVE 2;IFEXISTS 2;PBOB 71,110,RBOB2;EXIT
  170. ACTION: 0;IFOBJ 9;IFRF 1=3;SAVE 3;IFEXISTS 3;PBOB 145,21,RBOB3;EXIT
  171. ACTION: 0;IFOBJ 9;IFRF 1=4;SAVE 4;IFEXISTS 4;PBOB 148,72,RBOB4;EXIT
  172. ACTION: 0;IFOBJ 9;IFRF 1=5;SAVE 5;IFEXISTS 5;PBOB 210,21,RBOB5;EXIT
  173. ACTION: 0;IFOBJ 9;IFRF 1=6;SAVE 6;IFEXISTS 6;PBOB 213,82,RBOB6;EXIT
  174. ACTION: 0;IFOBJ 9;TEXT -1,0,1,You must click a number first!;EXIT
  175.  
  176. /*
  177. /* End of load/save script.
  178. /*
  179.